#include <stdio.h>
#include <limits.h> // 包含INT_MAX和UINT_MAX等宏定义

int main()
{
    // int类型的溢出
    int intMax = INT_MAX; // INT_MAX是int类型的最大值
    printf("intMax: %d\n", intMax);
    intMax += 1; // 溢出
    printf("intMax after overflow: %d\n", intMax);

    // unsigned int类型的溢出
    unsigned int uintMax = UINT_MAX; // UINT_MAX是unsigned int类型的最大值
    printf("uintMax: %u\n", uintMax);
    uintMax += 1; // 溢出
    printf("uintMax after overflow: %u\n", uintMax);

    // int类型的下溢
    int intMin = INT_MIN; // INT_MIN是int类型的最小值
    printf("intMin: %d\n", intMin);
    intMin -= 1; // 下溢
    printf("intMin after underflow: %d\n", intMin);

    return 0;
}